import Vue from 'vue';
import moment from 'moment';

import { cidType, templateType } from '@/dict/';

Vue.filter('default_avatar', function(url) {
	if (!url) {
		return require('@/assets/icon/default-avatar.png');
	}

	return url;
});

Vue.filter('default_name', function(name) {
	if (!name) {
		return '未命名';
	}

	return name;
});

// 金额分隔 1500 》1,500
Vue.filter('$goldDivide', value => {
	if (value) {
		return Number(value).toLocaleString();
	}
	return value;
});
// 转换成万为单位保留一位小数
Vue.filter('formatMyriadNum', value => {
	value = Number(value);
	if (value >= 10000) {
		return (value / 10000).toFixed(1) + 'w';
	}
	return value;
});

// 手机号掩码
Vue.filter('phoneMask', value => {
	value = String(value);
	if (value) {
		return value.substring(0, 3) + '****' + value.substring(7, 11);
	}
	return value;
});

Vue.filter('dateFormatLine', value => {
	if (!value || value == '0') {
		return '暂无';
	} else {
		return moment(Number(value) * 1000).format('YYYY-MM-DD HH:mm:ss');
	}
});

Vue.filter('date_format', (value, format) => {
	return moment(Number(value)).format(format || 'YYYY-MM-DD HH:mm:ss');
});

Vue.filter('dateFormatSlash', value => {
	return moment(Number(value)).format('YYYY-MM-DD');
});
Vue.filter('dateFormatLine2', value => {
	return moment(Number(value) * 1000).format('YYYY-MM-DD');
});
Vue.filter('dateFormatWeek', value => {
	return moment(value).format('YYYY/MM/DD dddd');
});

Vue.filter('dateFormatL', () => {
	return moment();
});
Vue.filter('format_date', function(date, format = 'YYYY-MM-DD HH:mm:ss') {
	return date ? moment(date).format(format) : '无';
});
Vue.filter('goods_type', val => {
	return cidType.filter(item => item.value == val)[0]
		? cidType.filter(item => item.value == val)[0].label
		: '暂无';
});
Vue.filter('toFixed', (value, index) => {
	if (!value) {
		return value;
	} else {
		return Number(value).toFixed(index);
	}
});

Vue.filter('image_ali', function(value) {
	if (!value) {
		return '';
	}

	if (value.includes('alicdn.com') && navigator.userAgent.toLowerCase().indexOf('Safari') == -1) {
		return value + '_200x200_.webp';
	}

	return value;
});

Vue.filter('dict_status', function(v) {
	switch (v) {
		case '0':
			return '订单状态';
		case '1':
			return '订单结算';
		case '2':
			return '订单付款';
		case '3':
			return '订单失效';
	}
});

Vue.filter('dict_platform', function(v) {
	switch (String(v)) {
		case '1':
			return '大淘客';
		case '2':
			return '好单库';
		case '3':
			return '选单网';
		case '4':
			return '联盟';
		default:
			return '暂无';
	}
});

Vue.filter('order_status', function(v) {
	switch (v) {
		case 3:
			return '订单结算';
		case 12:
			return '订单付款';
		case 13:
			return '订单失效';
		case 14:
			return '订单成功';
		default:
			return '未知状态';
	}
});
//  场景 场景 0补贴收入 1维权扣款 2发起提现 3提现失败退回 4提现手续费 5提现失败退回手续费

Vue.filter('scene_type', function(v) {
	switch (Number(v)) {
		case 0:
			return '补贴收入';
		case 1:
			return '维权扣款';
		case 2:
			return '发起提现';
		case 3:
			return '提现失败退回';
		case 4:
			return '提现手续费';
		case 5:
			return '提现失败退回手续费';
		case 6:
			return '红包兑换';
		case 7:
			return '红包订单失效扣款';
		case 8:
			return '嗨返APP首单奖励';
		case 9:
			return '首单奖励失效扣款';
	}
});
Vue.filter('redPack_type', function(v) {
	switch (Number(v)) {
		case 0:
			return '额外奖励';
		case 1:
			return '签到';
		case 2:
			return '金币任务';
		case 3:
			return '金币兑现';
		case 4:
			return '阶段奖励';
		case 5:
			return '兑换商品';
		case 6:
			return '额外奖励收入';
		case 7:
			return '新用户奖励';
	}
});

Vue.filter('template_type', val => {
	return templateType.filter(item => item.value == val)[0]
		? templateType.filter(item => item.value == val)[0].label
		: '暂无';
});
